package homework;

import java.util.*;

public class HomeTest05 {
    //2.由控制台按照固定格式输入学生信息，包括学号，姓名，年龄信息，当输入的内容为exit退出；将输入的学生信息分别封装到一个Student对象中，
    // 再将每个Student对象加入到一个集合中，要求集合中的元素按照年龄大小正序排序；最后遍历集合
    //推荐步骤：
    //a)创建Student类，并指定按照年龄正序排列
    //b)通过控制台输入多个不同Student信息。格式规定为：编号#姓名#年龄
    //c)取出字符串中相应信息放入Student对象，并将Student加入到集合中
    //难点：
    //d)如何指定学生按照年龄正序排列
    //e)如果从字符串“编号#姓名#年龄”中提取学生信息
    //f)放入哪种集合后可以保证学生按照年龄大小正序排列
    public static void main(String[] args) {
        LinkedHashMap<Integer,Student1> students = new LinkedHashMap<>();
        while (true) {
            System.out.println("请输入学生信息：编号#姓名#年龄(退出请输入exit)");
            Scanner scanner = new Scanner(System.in);
            String info = scanner.nextLine();
            if ("exit".equals(info)) {
                break;
            }
            Student1 stu = new Student1();
            String[] infoArr = info.split("#");//拆分字符串
            stu.setId(Integer.parseInt(infoArr[0]));//获取编号拆分出来的第一个字符串索引就是id，存入Student对象中
            stu.setName(infoArr[1]);//获取姓名
            stu.setAge(Integer.parseInt(infoArr[2]));//获取年龄
            students.put(stu.getId(), stu);//添加元素
        }
        students.forEach((id,stu)-> System.out.println(stu));//遍历集合
    }
}
class Student1 {
    private int id;
    private String name;
    private int age;

    public Student1(int id, String name, int age) {
        this.id = id;
        this.name = name;
        this.age = age;
    }

    public Student1() {
    }

    public int getId() {
        return id;
    }

    public void setId(int id) {
        this.id = id;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public int getAge() {
        return age;
    }

    public void setAge(int age) {
        this.age = age;
    }


    @Override
    public int hashCode() {
        return Objects.hash(name, age);
    }

    @Override
    public String toString() {
        return "学号：" + id + "姓名：" + name + "  年龄：" + age;
    }
}